package com.kcht.itsed.mws.alefacade.stdfacade;

import com.kcht.itsed.mws.alefacade.exceptions.DuplicateNameException;
import com.kcht.itsed.mws.alefacade.exceptions.InUseException;
import com.kcht.itsed.mws.alefacade.exceptions.NoSuchNameException;
import com.kcht.itsed.mws.alefacade.exceptions.ValidationException;
import com.kcht.itsed.mws.extendalemodel.PRSpec;
import com.kcht.itsed.mws.extendalemodel.PhysicalReaderLinkState;

import java.util.List;

/**
 * 扩展的ALE协议接口：物理阅读器规则
 * 
 * @author 张文硕
 *
 */
public interface ALEPR extends ALEIntf {
	
	void define(String name, PRSpec prSpec)throws DuplicateNameException ,ValidationException;

	void update(String name, PRSpec prSpec)throws NoSuchNameException, ValidationException, InUseException;
	
	void undefine(String name)throws NoSuchNameException, InUseException;
	
	List<String> getPhysicalReaderNames();
	
	PRSpec getPRSpec(String name)throws NoSuchNameException;
	
	
	// 扩展的阅读器网管接口方法
	
	//获取所有物理阅读器的链路状态
	List<PhysicalReaderLinkState> getPhysicalReaderLinkState();

	//获取所有断链的阅读器
	List<PhysicalReaderLinkState> getDisconnectedPhysicalReader();
	
	
}
